#ifndef TILESET_HPP
#define TILESET_HPP
#include <tinyxml.h>
#include <string>
#include <vector>

namespace Tmx{
class Tile;
class Image;
class Properties;
class Tileset{
public:
  Tileset();
  ~Tileset();
  void parse(TiXmlNode *tilesetNode);
  int getFirstGid() { return firstGid; };
  std::string getName() { return name; };
  int getTileWidth() { return tileWidth; };
  int getTileHeight() { return tileHeight; };
  int getTileMargin() { return margin; };
  int getTileSpacing() { return spacing; };
  Image* getImage() {return image;}
  Tile* getTile(int index);
  std::vector<Tile *> &getTiles() {return tiles;}
private:
  int firstGid;
  std::string name;
  int tileWidth;
  int tileHeight;
  int margin;
  int spacing;
  Image *image;
  std::vector<Tile *> tiles;
  Properties *properties;
}; // class Tileset

}; // namespace Tmx
#endif
